/* * Android SDK for Piwik * * @link https://github.com/piwik/piwik-android-sdk * @license https://github.com/piwik/piwik-sdk-android/blob/master/LICENSE BSD-3 Clause */ package org.piwik.sdk.testhelper; import android.content.ComponentName; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInstaller; import android.content.pm.ResolveInfo; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.os.UserHandle; import android.support.annotation.NonNull; import org.robolectric.annotation.Implementation; import org.robolectric.res.builder.RobolectricPackageManager; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Because we need to fake things that RobolectricPackageManager does not offer. * Currently:<p> * {@link org.robolectric.res.builder.RobolectricPackageManager#setInstallerPackageName(String, String)} */ public class FullEnvPackageManager extends RobolectricPackageManager { private final HashMap<String, String> mInstallerPackageNames = new HashMap<>(); @Override public Intent getLeanbackLaunchIntentForPackage(String packageName) { return null; } @Override public boolean isPermissionRevokedByPolicy(@NonNull String permName, @NonNull String pkgName) { return false; } @Override public List<ResolveInfo> queryIntentContentProviders(Intent intent, int flags) { return null; } @Override public Drawable getActivityBanner(ComponentName activityName) throws NameNotFoundException { return null; } @Override public Drawable getActivityBanner(Intent intent) throws NameNotFoundException { return null; } @Override public Drawable getApplicationBanner(ApplicationInfo info) { return null; } @Override public Drawable getApplicationBanner(String packageName) throws NameNotFoundException { return null; } @Override public Drawable getUserBadgedIcon(Drawable icon, UserHandle user) { return null; } @Override public Drawable getUserBadgedDrawableForDensity(Drawable drawable, UserHandle user, Rect badgeLocation, int badgeDensity) { return null; } @Override public CharSequence getUserBadgedLabel(CharSequence label, UserHandle user) { return null; } @Implementation public void setInstallerPackageName(String targetPackage, String installerPackageName) { mInstallerPackageNames.put(targetPackage, installerPackageName); } @Implementation public String getInstallerPackageName(String packageName) { return mInstallerPackageNames.get(packageName); } @NonNull @Override public PackageInstaller getPackageInstaller() { return null; } public Map<String, String> getInstallerMap() { return mInstallerPackageNames; } }